Lenguaje de programación que puede especificar en determinados puntos del programa distintas alternativas para el flujo de ejecución del programa.